home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1998 #1 / Amiga Plus 1998 #1.iso / demo-versionen / haage&partner / warpup-warpos / history.txt < prev    next >
Text File  |  1997-10-06  |  17KB  |  319 lines

  1. *******************************************************************************
  2. *
  3. *               Welcome to warp speed!
  4. *
  5. *               © 1997 HAAGE&PARTNER Computer GmbH
  6. *
  7. *               powerpc.library/WarpOS history
  8. *
  9. *               milestones:
  10. *               V8.0  - first internal release of WarpOS. powerpc.library is
  11. *                       running under WarpOS from now on.
  12. *               V9.0  - PPC native memory management / exception handler
  13. *                       support
  14. *               V10.0 - MMU + BAT support implemented / PPC-Enforcer
  15. *                       Reincarnation of VOXELSPACE
  16. *               V11.0 - Virtual signal system / native msg handling
  17. *               V12.0 - Memory protection support / InterCPU msg handling
  18. *                       CyberStormPPC support
  19. *               ***  Official Release  ***
  20. *
  21. *******************************************************************************
  22.  
  23.  4. 6.97        - first internal release
  24.                 - V8.0
  25.  
  26.  5. 6.97        - new memory management, based on mempools, inserted
  27.                   (old implementation linked to exec/AllocVec disabled)
  28.  
  29.                   Thanks a lot to Michael Rock for the implementation of
  30.                   this memory management!
  31.                 - V8.1
  32.  
  33.  7. 6.97        - New memory management routines locked by semaphores
  34.                 - OpenLibrary patch implemented to prevent WarpOS from
  35.                   being killed by ELF applications.
  36.                 - New mirror tasks now get the priority of its partner
  37.                   task instead of 0.
  38.                 - New library functions 'Super' and 'User' to switch
  39.                   between supervisor and user mode.
  40.                 - New library function 'SetHardware' to affect some
  41.                   CPU related resources (i.e. trace mode)
  42.                 - V8.2
  43.  
  44.  8. 6.97        - If no tasks are running/ready, the PPC enters a
  45.                   power saving mode (nap mode)
  46.                 - New library function 'ModifyFPExc' allows to set/clear
  47.                   the exception enable bits in the FPSCR to enable/disable
  48.                   particular FP exceptions
  49.                 - New flag for CreateTaskPPC: TASKATTR_MOTHERPRI. Allows
  50.                   child tasks to inherit the priority of the mother task
  51.                 - New tools to set/clear global breakpoints: ibreak and
  52.                   dbreak (dbreak only for 604[e])
  53.  
  54.  9. 6.97        - Priority of WarpOS system task 'Enterprise' changed to 1
  55.                 - New library functions 'SetExcHandler' and 'RemExcHandler'
  56.                   allow to insert/remove custom exception handler (comparable
  57.                   to exec/AddIntServer)
  58.                 - New memory management system temporarly disabled because of
  59.                   linker problems.
  60.                 - V9.0
  61.  
  62. 11. 6.97        - New memory management system re-enabled.
  63.  
  64. 12. 6.97        - Signal numbers changed from BYTE to LONG (AllocSignalPPC,
  65.                   FreeSignalPPC)
  66.                 - Emulation of misaligned FP accesses done (implemented in
  67.                   warp.library). Author of the emulation: M.Rock.
  68.  
  69. 13. 6.97        - Heavy bug fixed: Sleep routine (executed if no tasks
  70.                   are running/ready) trashed the stack of a waiting task.
  71.                 - New library function 'WaitTime' allows to wait for a
  72.                   given time or for given signals.
  73.                 - Emulation of DCBZ to noncachable/writethrough locations
  74.                   implemented (warp.library)
  75.                 - V9.1
  76.  
  77. 14. 6.97        - New WarpOS support task 'Voyager' implemented which frees
  78.                   all memory allocated at 'CreateTaskPPC' if the task is
  79.                   removed.
  80.                 - New *private* library function 'ChangeStack' to change the
  81.                   PPC stack.
  82.                 - New tool 'stackppc' which works the same as the 'stack'
  83.                   command (using 'ChangeTask').
  84.                 - Bug fixed: mirror tasks didn't get double the stack size
  85.                   of the calling 68K process (as intended) because the
  86.                   field 'pr_Stacksize' isn't updated by the Shell when
  87.                   launching programs. The difference of TC_SPUPPER and
  88.                   TC_SPLOWER multiplied by 2 is taken now.
  89.                 - New library functions 'LockTaskList' and 'UnLockTaskList'
  90.                   allow to gain access to a list of all tasks.
  91.                 - New tool 'showtasks' prints out informations about all PPC
  92.                   tasks.
  93.                 - V9.2
  94.  
  95. 15. 6.97        - signal bit definition for SIGF_TIME changed from 2 to 9
  96.                   to avoid collisions with exec signals.
  97.                 - paged MMU setup implemented and activated
  98.                 - exception handlers are now called with MMU switched off.
  99.                   -> no critical locations like custom chip area (which must
  100.                   be accessed in noncachable mode) must be accessed anymore
  101.                 - new library functions 'SetExcMMU' and 'ClearExcMMU' allow
  102.                   to setup a temporary BAT based MMU setup in exception
  103.                   handling code to access critical locations as described
  104.                   above.
  105.  
  106. 16. 6.97        - BAT support done. The BAT registers are now a local resource
  107.                   of each task (like the normal registers) and they are
  108.                   switched by the scheduler.
  109.                 - New library function 'ChangeMMU' allows to change the MMU
  110.                   setup of the current task to standard or to BAT setup.
  111.                 - New tool 'changeMMU' performs the same action as the
  112.                   library function, but it can be controlled from the shell.
  113.  
  114. 17. 6.97        - bug fixed: mempools were not freed by mistake
  115.                 - MMU support for AllocVecPPC/FreeVecPPC implemented
  116.  
  117. 18. 6.97        - ******  Reincarnation of VOXELSPACE !!  *******
  118.                   the executable 'voxelspace' is now located in the demos
  119.                   drawer. To run the demo a separate archive is required.
  120.                   (voxel.lha). Welcome to warp speed! :)
  121.                 - PPC-Enforcer activated. First page is protected and all
  122.                   accesses to $400-$1000 are emulated. Load accesses to $4
  123.                   are emulated, too.
  124.                 - New library function 'GetInfo' allows to get many PPC
  125.                   related information
  126.                 - New tool 'showinfo' displays all information currently
  127.                   available by 'GetInfo'
  128.                 - V10.0
  129.  
  130. 22. 6.97        - bug fixed: if someone tried to open powerpc.library with
  131.                   too high version number, the powerpc.library was shut down.
  132.  
  133. 23. 6.97        - SIGF_TIME changed again (Bit 10)
  134.  
  135. 25. 6.97        - bug fixed which could cause deadlock at 68K-Calls
  136.                 - bug fixed: internal instruction cache flush was broken
  137.                 - signals are now completely transparent to the CPU's. All
  138.                   signals are transferred at Cross-Calls -> A PPC task can
  139.                   now be signaled by signaling its 68K mirror task and vice
  140.                   versa. All signal bits are mirrored.
  141.  
  142. 26. 6.97        - LN_TYPE field of a ppc task changed from NT_TASK to
  143.                   NT_PPCTASK (-> tasksppc.i)
  144.                 - The whole signal handling is now based on the 'virtual
  145.                   signal-pool'. Both CPU's share the signals and they can
  146.                   signal tasks on both CPU's directly (i.e. a PPC-Task can
  147.                   be signaled from 68K using exec/Signal with the PPCTask
  148.                   structure as first argument).
  149.                 - Now it's safe not to restore the nonvolatile registers if
  150.                   a PPC task exits by a single 'blr'. The smalldata base is
  151.                   now automatically transferred to an alternative exit
  152.                   routine, if one was specified at 'CreateTaskPPC'.
  153.                 - V10.1
  154.  
  155. 27. 6.97        - New library functions implemented for Message-Handling:
  156.                   CreateMsgPortPPC, DeleteMsgPortPPC, AddPortPPC, RemPortPPC,
  157.                   FindPortPPC, WaitPortPPC, PutMsgPPC, GetMsgPPC, ReplyMsgPPC
  158.  
  159. 28. 6.97        - A new PPC task now creates immediately a mirror 68K process
  160.                   if none exists.
  161.  
  162. 29. 6.97        - PutMsgPPC/ReplyMsgPPC can now be called from exception
  163.                   handlers.
  164.                 - V10.2
  165.  
  166. 13. 7.97        - New library function 'FreeAllMem' allows to free all
  167.                   allocations made by the calling task.
  168.  
  169. 15. 7.97        - If WarpOS is launched before ENV: is ready, then the
  170.                   env variables are read a second time, when the first
  171.                   RunPPC is performed (except for powerpc/debug)
  172.  
  173. 16. 7.97        - WarpOS-Documentation in AMIGAGuide-Format done (D)
  174.  
  175. 18. 7.97        - Dokumentation for Game-Development 'GameDev.guide'
  176.                   included in archive (D)
  177.                 - V11.0
  178.  
  179. 19. 7.97        - There was a tiny chance of problems with messages
  180.                   sent from exception handling code -> fixed
  181.  
  182. 20. 7.97        - Memory protection support implemented. Two new memory
  183.                   attributes for 'AllocVecPPC' allow to allocate memory,
  184.                   which is protected against other tasks (either full
  185.                   protected or write protected).
  186.                 - The tool 'showtasks' now displays the pagetable of each
  187.                   task.
  188.                 - The PPC-Code of the powerpc.library is now write-protected.
  189.                 - V11.1
  190.  
  191. 21. 7.97        - New library function 'CopyMemPPC' to copy memory areas.
  192.                 - New environment variable 'powerpc/memprot' allows to
  193.                   disable/enable the memory protection feature.
  194.                 - New 68K library functions 'AllocVec32' and 'FreeVec32'
  195.                   allow to allocate memory which can be shared with PPC tasks
  196.                 - New 68K library function 'SPrintF68K' allows to print
  197.                   debug information to the serial port/sushi.
  198.  
  199. 22. 7.97        - cache flush optimization for 68040/68060 didn't work at all
  200.                   -> fixed -> calling overhead decreased by 20 percent
  201.                 - InterCPU message handling implemented. New library functions
  202.                   'AllocXMsg', 'FreeXMsg' and 'PutXMsg' for 68K to alloc
  203.                   special InterCPU-Messages and to send them. New library
  204.                   functions 'AllocXMsgPPC', 'FreeXMsgPPC' and 'PutXMsgPPC' do
  205.                   the same for PPC.
  206.  
  207. 23. 7.97        - Various bugs related to MMU features fixed
  208.                 - C-Includes added to the WarpOS-Archive.
  209.                 - V11.2
  210.  
  211.  1. 8.97        - Changed the assembler macros RUNPOWERPC and RUNPOWERPC_XL
  212.                   (powerpc.i) to support direct PPC-Library-Calls from 68K-
  213.                   Functions. Note: the parameters 2-4 were shifted to the
  214.                   right by one. New parameter 2: The Library-Offset (used
  215.                   in the same way like in the macros RUN68K and RUN68K_XL).
  216.                 - All include files were equipped with checks to the
  217.                   constant POWERPCLIB_V7. If this symbol is defined then
  218.                   no structures/macros are assembled, which can only be used
  219.                   with powerpc.library V8+.
  220.                 - Added include file 'libraries/powerpc.i'. Including this
  221.                   file sets the constant mentioned above and allows to create
  222.                   V7-compatible applications.
  223.                 - Added the powerpc.library V7 and its history file to this
  224.                   archive (directory 'v7')
  225.  
  226.  2. 8.97        - Bug fixed: On PPC-Systems with CPU clocks between
  227.                   250-300 Mhz, the CPU clock returned by 'GetInfo' could
  228.                   have been wrong.
  229.                 - Bug fixed: 'GetInfo' returned a wrong page table size.
  230.                 - Improved the accuracy of the FP conversion in the crash
  231.                   requester which is used to display the FP registers as
  232.                   ASCII string.
  233.  
  234. 19. 8.97        - On some systems with small gfx address space, the gfx
  235.                   RAM was not placed into BAT registers. Now the powerpc.
  236.                   library tries to find out, where the gfx RAM is located
  237.                   (using cybergraphics.library) and puts the gfx RAM into
  238.                   BAT registers if possible (alignment must still be
  239.                   properly set).
  240.                 - New environment variable 'gfxaddr' allows to specify an
  241.                   address (either with or without $) to give the powerpc.
  242.                   library a hint, where the gfx RAM should be.
  243.                 - New versions of cybermand and voxelspace added.
  244.                 - V11.3
  245.  
  246. 27. 8.97        - Removed Gfx-RAM autodetection (seems to be somewhat risky)
  247.                 - Forgot to add warp.library 1.2 to the WarpOS-Archive.
  248.                   powerpc.library V11.3 didn't work at all...
  249.                   -> warp.library V1.2 added
  250.  
  251. 15. 9.97        - CyberstormPPC support added.
  252.                   WarpOS *WORKS* with the CyberStormPPC-Boards !! Cybermand
  253.                   is now 12-13 times faster on 604E/200 relative to 68060/50.
  254.                 - Added new version of voxelspace to the archive. Added
  255.                   special optimization for PPC604E.
  256.                 - Added voxel.readme and voxel_english.readme to the demos
  257.                   drawer. This file contains some notes about the usage of
  258.                   the voxelspace parameters and known problems.
  259.                 - Added english translations of WarpOS.guide and GameDev.guide.
  260.  
  261. 16. 9.97        - Added a correction stage at CPU-clock calculation (in
  262.                   function 'GetInfo'). The cpu clock is now displayed
  263.                   completely correctly.
  264.  
  265. 17. 9.97        - Problems with PPC-Enforcer and 604E fixed (NEVER use
  266.                   self modifying code yourself!). One 'sync'-instruction
  267.                   more, and everything works fine.
  268.  
  269. 18. 9.97        - New library functions GetSysTimePPC, AddTimePPC, SubTimePPC
  270.                   and CmpTimePPC for time measurement (also available vor V7)
  271.                 - New small demo program 'pixelOmania' to measure the
  272.                   context switch performance (i.e. to compare V7 and V8+)
  273.  
  274. 20. 9.97        - Added the 'WarpRace' application to the archive (drawer
  275.                   'WarpRace'). This application is a modular performance
  276.                   test program. Included are several modules and module
  277.                   sources.
  278.                   WarpRace and all modules so far work with powerpc.library V7.
  279.  
  280. 21. 9.97        - Added the 'landscape' demo to the archive (drawer
  281.                   'demos/landscape'), a fractal landscape generator.
  282.                 - Added new versions of 'tabletennis' and 'cyberpi' which
  283.                   don't crash anymore if the powerpc.library can't be opened.
  284.                   'Cyberpi' now supports both CPU's (new parameter M68K).
  285.                 - V12.0
  286.  
  287. 25. 9.97        - Corrected a bug in the warprace executable (CTRL-C only
  288.                   breaked only the current recursion level)
  289.                 - Corrected a bug in warprace module 'Landscape.wrm' (mem
  290.                   allocation was broken)
  291.                 - New 68K library function 'GetPPCState' allows to get
  292.                   information about the state of the PPC and of PPC
  293.                   applications (officially available in V13)
  294.                 - New tool PPCState displays the result of 'GetPPCState'
  295.                 - V12.1
  296.  
  297. 27. 9.97        - New env-variable 'noPPC'. If this variable is 1, then
  298.                   the powerpc.library always returns 0 at initialization.
  299.                   This allows to use applications, which try to open
  300.                   the powerpc.library, without PPC boards (before, WarpOS
  301.                   simply crashed) if it supports the 68K too.
  302.  
  303. 29. 9.97        - Static board detection implemented. If problems occur or
  304.                   the 68060.library of the PowerUp-Distribution is not
  305.                   installed, the board type can be selected using the new
  306.                   env variable 'boardtype'.
  307.                   0  =  auto detection using 68060.library
  308.                   1  =  developer board
  309.                   2  =  CyberstormPPC
  310.                 - New env variable 'earlyterm' implemented (also for V7).
  311.                   If the variable is not 0, then the mirror task of a 68k
  312.                   task is removed at the last CloseLibrary of the 68k task,
  313.                   instead at removal of the task.
  314.                   Hope, this will fix the problems with WShell.
  315.                   The tools stackppc and changemmu DON'T work with earlyterm=1!
  316.                   Use the 68K command stack to modify the PPC stack (the PPC
  317.                   stack is about double the size of the 68K stack).
  318.                 - 12.2
  319.